//package com.yang.lock.lock;
//
//import org.redisson.api.RReadWriteLock;
//import org.redisson.api.RedissonClient;
//import com.yang.lock.model.LockInfo;
//
//import java.util.concurrent.ExecutionException;
//import java.util.concurrent.TimeUnit;
//
///**
// * <p>
// * 读锁
// * </p>
// * @author yang
// * @date 2023/7/13
// */
//public class ReadLock implements Lock {
//
//    private  RReadWriteLock rLock;
//
//    private final LockInfo lockInfo;
//
//    private final RedissonClient redissonClient;
//
//    public ReadLock(RedissonClient redissonClient,LockInfo info) {
//        this.redissonClient = redissonClient;
//        this.lockInfo = info;
//    }
//
//    @Override
//    public boolean acquire() {
//        try {
//            rLock=redissonClient.getReadWriteLock(lockInfo.getName());
//            return rLock.readLock().tryLock(lockInfo.getWaitTime(), lockInfo.getLeaseTime(), TimeUnit.SECONDS);
//        } catch (InterruptedException e) {
//            return false;
//        }
//    }
//
//    @Override
//    public boolean release() {
//        if(rLock.readLock().isHeldByCurrentThread()){
//            try {
//                return rLock.readLock().forceUnlockAsync().get();
//            } catch (InterruptedException | ExecutionException e) {
//                return false;
//            }
//        }
//
//        return false;
//    }
//}
